Telephone functions for computers

ABSTRACT

An embodiment may include, in response to selecting of a displayed telephone number, prompting issuance of a click command to make an outgoing call to the displayed telephone number. The selecting may be indicated by highlighting the displayed telephone number. In response to an incoming call, a message may be displayed from an operating system. The message may include caller ID data and may prompt issuing of other click commands that, if issued, may result in answering the incoming call, conferencing the incoming call with the outgoing call, and placing on hold the outgoing call.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of prior co-pending U.S. patentapplication Ser. No. 12/780,677 filed May 14. 2010, which is acontinuation of application Ser. No. 11/028,301 filed Jan. 3, 2005,which is a continuation of application Ser. No. 09/182,833 filed Oct. 291998.

FIELD OF USE

The invention pertains to the field of application software that makesuse of the TAPI interface and TAPI library of functions in the Windowsseries of operating systems for personal computers, or similar librariesof functions in other operating systems to implement telephone functionsusing a modem or other computer enabled telephone line interfacehardware.

Application programs for personal computers to implement telephonefunctions are known. These applications are useful in the modern officeenvironment because they are capable of implementing telephones whichhave more functionality than the actual telephones on the desks ofworkers. Such functions as answering machine capability, call recordingcapability, speed dial, conferencing, playing outgoing messages,transfer to voice mail etc. are features that most office telephones donot have. The particular features which are implemented by the phonevary from one application to another, and the particular featuresimplemented in the telephone application are not critical to thisinvention.

One class of application processes that perform certain useful andfrequently used functions are called dialers. Dialers are programs thatcan dial phone numbers, look up phone numbers and dial them etc. Oneexample of a dialer in the prior art is the minidialer included with thePhoneKits™ and CT Pro™ telephone emulation programs sold by the assigneeof the present invention.

One of the problems with existing dialers is that they are not contextsensitive and this presents a complicated menu structure to benegotiated by a person who is on the phone with another person and wantsto, for example, transfer the call to another person or conference inanother person. This person may be distracted or paying her fullattention to the ongoing conversation and does not want to be confrontedwith any complexity that requires diversion of attention away from theconversation.

Thus, a need has arisen for a dialer application that has manycapabilities such as conference, transfer, hold, park, drop, hold, diala highlighted number on a list etc., and which can do this job with acontext sensitive menu form to simplify the options displayed to theuser based upon the situation.

As far as the applicants are aware, there Is no other dialer applicationof any sort that implements a dialer function which displays contextsensitive menu options.

SUMMARY OF THE INVENTION

The genus of the invention is defined as the class of computer programsfor controlling computers coupled to TAPI compliant telephony devices toperform dialer type functions with context sensitive menus. All speciesof the process of the invention will be carried out in a computer havingan operating system and a library of programs that control the computerto implement specific telephony functions. In a broad definition of thegenus of processes implementing the invention, the following steps willbe performed:

-   -   determining when a predetermined event has occurred indicating a        user of said computer wishes to implement a telephony function,        said predetermined event being any event caused by any        predetermined user manipulation of user input devices coupled to        said computer indicating a desire to see a menu of available        telephony functions;    -   displaying a context sensitive menu of available telephony        functions when said predetermined event is detected; and    -   determining which if any menu option is selected, and invoking        into execution the particular computer program in said library        of computer programs so as to control said computer to implement        the selected telephony function.

Specifically, all species in the apparatus genus of the invention havethe following shared characteristics:

-   -   when a pointing device mouse click on a dialer icon is detected        or a hot key combination is pressed on a keyboard, a dialer        program goes into execution to control a computer having an        operating system with a library of programs that implement        telephony functions;    -   the computer is also controlled by at least one application        program controlling the display in an active window;    -   the mouse click or hot key event causes the dialer to control        the computer to display a dialer menu;    -   the displayed dialer menu options are context sensitive;    -   context sensitive means only the menu options available for        selection in the particular status of highlighted text or        numbers in the active window and/or state of the existence or        nonexistence of an ongoing telephone call determine which        telephony functions are available for selection on the menus;    -   when a menu option is selected, the program that implements that        particular telephony function is invoked into execution and        controls the computer to implement the telephony function.        In the preferred embodiment, the particular context sensitive        menu options that are displayed for selection depend upon:    -   whether the user has any text or numbers selected in a window of        the current application program;    -   whether the selected text or numbers appear to be a phone number        or not;    -   if not a phone number, whether the selected text matches any        stored name in an phone book file stored in memory or on a hard        disk peripheral of said computer;    -   whether or not the user of said computer is or is not currently        using said TAPI telephony device in an ongoing telephone        conversation; and    -   regardless of whether the user is or is not currently engaged in        a telephone conversation, whether or not a telephone number has        been highlighted In a window of the current application program.

In an alternative embodiment, if the highlighted text is not a name andnot a phone number but appears to be a URL, the dialer program launchesa web browser, logs on if necessary, and opens the web page Identifiedby the URL.

In some species, the dialer program controls the computer to control thevideo display to show a dialer icon which is visible at all times eitherin or near the title bar of the currently active window or in or nearthe system tray. The reason the title bar is selected for display of theminidialer icon is that the minidialer effectively adds a dial button towhatever the active program is so a user can highlight a phone number inany program she is using and click on the minidialer to dial the numberby selecting a context sensitive menu selection. By putting theminidialer icon in the title bar, there is no need to know what or whereany other buttons are displayed in the active window of the activeprogram. This property of retrofitting any program with a dial buttonand other telephony features to give it telephony capability is believedto be new. The property of displaying the available telephony functionsretrofitted to the active window in a context sensitive manner is alsonew.

In some species, a mouse click on the dialer icon or hot key eventcauses a context sensitive drop down menu of available telephonyfunctions to appear with some menu options associated with a secondlevel of menu or a dialog box appearing when the option is selected.

In an alternative embodiment where the Windows 98 operating system is inuse the minidialer program links to the normal Windows 98 contextsensitive menus through an API to retrofit the active window and activeapplication process which is painting the active window with telephonyfunctions using the right click menus. For example, if the user has anytext highlighted in a word processing document, data base or contactmanager, and the user right clicks, in addition to the normal options ofundo, font, spellcheck, copy, cut, paste etc. additional telephonyfunctions of dial, conference, transfer, look up and pop are displayed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the hardware platform and softwarearchitecture for a system according to the teachings of the invention.

FIGS. 2A-2B are a flowchart symbolizing the processing of the minidialerprogram to retrofit the active application and active window withtelephony functions and to provide context sensitive menus by whichthese telephony functions can be invoked.

FIG. 3 is a block diagram representing the genus of hardware systems inwhich the processes of the invention can be practiced.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 1, there is shown a block diagram showing the hardwareand software architecture of the preferred platform in which the processand apparatus of the invention find utility. An application program 50which is capable of displaying a virtual telephone on a video display 58coupled to computer 56 and implementing telephony functions incooperation with a telephony device 78 communicates through a TAPIinterface with the Windows operating system 54 which controls operationof computer 56. The invention is not intended to be limited to theWindows Operating System or the TAPI library in the Windows OperatingSystem. Any operating system with a library of programs that implementtelephony function and an application programmatic interface that allowsthese library programs to be invoked into execution by other programs soas to control a telephony device coupled to said computer to implementtelephony functions will suffice to practice the invention. The TAPIinterface is a Windows application programmatic interface which providesa plurality of defined function calls which may be invoked by virtualtelephone application process 50. Each function call and its argument,if any, invokes into execution a program in a TAPI library of programsprovided with the Windows OS 54 (or an analogous program in a library oftelephone function programs in another OS). That program then controlsexecution of computer 56 to carry out a specific telephone functionassociated with the function call.

The computer 56 is also programmed with one or more other applicationprograms symbolized by block 57 which also control the operation of thecomputer in cooperation with the operating system when active. “Active”means that the application program has a window on the display in whichthe results of processing by the program are displayed and that windowis the active window meaning that the instructions of the particularapplication program that is creating the content of the window arecontrolling operations by the computer. The other applications programscan be anything, but typically, they are word processing programs,contact manager database programs to maintain records of phone numbers,addresses, URL for various people, address or telephone book applicationprograms also to maintain records of phone numbers, addresses, URLs forvarious people and/or organizations and a web browser such as theexcellent web browser Navigator by Netscape. As will be explained below,names or telephone numbers or URLs can be highlighted using the pointingdevice either during or before telephone calls. The on-hook or off-hookstatus of the telephony device coupled with the fact of whether or notsome text or numbers are highlighted in the active window and whetherthe highlighted material is a name, telephone number or URL and, if aname, whether it matches any names stored in a telephone book of namesand phone numbers maintained by the virtual telephone application 50will determine the telephony menu options available to a user andprocessing by the computer. This is the meaning of context sensitivemenus or menu options in the description of the Invention and theappended claims.

Block 59 represents a minidialer program that does processing symbolizedby the flowcharts of FIGS. 2A and 2B to display context sensitive menus.In essence, the function of the minidialer program 59 is to addtelephone dialing capabilities and a few other telephony functions suchas conference, transfer, park etc. to whatever application program iscurrently controlling the computer. Although the minidialer program isshown as a separate application program in FIG. 1, it may be a part ofthe virtual telephone application process 50. In addition to theprocessing symbolized by FIGS. 2A and 2B, the preferred embodiment ofthe minidialer program also registers a minidialer icon with theoperating system and cooperates with the operating system to cause theminidialer icon to be displayed in or near the title bar of the activewindow, and when another application program's window becomes the activewindow, for cooperating with the operating system to display theminidialer icon in or near the title bar of the new active window. In analternative embodiment, the minidialer program cooperates with theoperating system to display the minidialer icon in or near the systemtray or at some other location on the desktop where it will always bevisible. In some embodiments, the minidialer program 59 cooperates withthe operating system to display the minidialer icon on the desktop or inthe task bar or on or near the title bar of the overall display or underthe apple menu as an option of a drop down menu or as an option of adrop down or pop up menu from a system icon anywhere on the desktop orin the title bar or system tray where the menu or information displayindicates all the applications that are running in a multitaskingenvironment whose windows can be made the active window by selecting themenu option.

The CPU 56 in FIG. 1 is usually a personal computer and has a videodisplay 58, a keyboard 60, a mouse or trackpad or joystick or otherpointing device 62 and a nonvolatile bulk storage such as hard disk 64.The operating system 54 communicates via various service providerinterfaces 66 with a plurality of drivers for the various hardwaredevices such as the video display, keyboard etc. The drivers processes68 communicate via signal paths 70 with other hardware interfaces 72which function to communicate with the hardware devices such as display58, keyboard 60, pointing device 62 and hard disk 64 with signals thesedevices understand.

The operating system 54 also communicates via a service providerinterface 74 (hereafter service provider interfaces will be referred toas SPIs) with a TAPI device driver process 76 which is specificallydesigned to interface a TAPI telephony device 78 with the operatingsystem 54 and the TAPI library programs therein. The TAPI telephonydevice 78 can be any of a number of devices compatible with the TAPIinterface such as a modem, telephone, PBX etc. A TAPI telephony deviceis an apparatus which connects to a telephone system and controls someaspect of that telephone system, and is in turn controlled by acomputer. The computer consists of any electronic apparatus whichperforms a programmed sequence of instructions. The program causes thecomputer to communicate with the TAPI telephony device 78 via a libraryof function calls to a library of computer programs each of which iscapable of controlling the TAPI telephony device to implement atelephone function.

When a function call through the TAPI interface invokes a program in theTAPI library into execution, commands and/or data are sent via SPI 74 tothe TAPI driver. The driver then converts those commands and/or datainto commands and/or data which the specific telephony device 78understands to carry out that particular function such as pick up thephone line and dial a specific number etc. Data and commands from theTAPI driver process 76 are sent via bus 80 to a hardware interfacecircuit 82 which converts them into signals on bus 94 which causetelephony device 78 to carry out the desired telephone function. Thehardware interface circuit could be an expansion card circuit, a networkinterface, a serial port, a parallel port, an infrared linketc.—whatever the telephony device 78 requires.

When the CPU boots, dynamic linked libraries such as the TAPI libraryare loaded into system RAM not shown. Then when application processessuch as process 50 are loaded, the OS looks for function calls to theTAPI interface in the program code of the application process andreplaces it with the actual address in RAM where the program in the TAPIlibrary that carries out that function begins. When the code of theapplication process is executing and the program counter reaches theposition of that function call, control branches to the start of theprogram in the TAPI library that carries out that function.

As an example of how the various functional blocks cooperate to carryout a telephone function, suppose telephone device 78 is a telephone. Anincoming call arrives on telephone line 84 coupled to the central officeswitch of the telephone service provider. The phone 78 generates aringing status signal on bus 84 which is sensed by the hardwareinterface 82 by an interrupt or polling process. The hardware interfacepasses a message on bus 80 to TAPI driver process 76 which passes aninterprocess message via SPI 74 to the OS 54. The OS passes aninterprocess message to the application 50 via TAPI interface 52informing application process 50 that the phone is ringing. Theapplication process then passes a message back to OS 54 through the TAPIinterface 52 or another API to cause the OS to paint a “Phone Ringing”message or dialog box on video display 58 via appropriate knownprocesses. This message may include caller ID data passed up toapplication process 50 and queries whether the user wishes to answer thephone. If the user does wish to answer the phone, a keyboard or pointand click command is issued via the pointing device to answer the phone.This message is passed up through hardware interface 72, driver 68, SPI66 and OS 54 to application process 50. The application process thenissues a command via a TAPI function call to invoke a program to controlthe telephony device 78 to go off-hook. This program runs and generateappropriate function calls via SPI 74 to the TAPI driver process whichsends appropriate commands via bus 80 to the hardware interface 82. Thehardware interface 82 generates appropriate signals on bus 84 to causetelephone device 78 to go off-hook to answer the phone. If the telephonydevice 78 is a speakerphone, the user then hears the caller's voicethrough the speakerphone. If the telephony device is only a modem, theincoming voice would be digitized in the modem 78 or hardware interfaceand the data routed up through the TAPI driver 76, OS 54, application 50and back down through the OS and a driver 68 and hardware interface 72for a set of speakers (not shown) connected to the computer 56 orinternal thereto.

Referring to FIGS. 2A and 2B, there is shown a flowchart of processingby the context sensitive minidialer program to retrofit the activeprogram with telephony functions and display context sensitive telephonymenu options and perform certain processing in support of implementationof telephony functions. The process starts at block 97 and moves toblock 99. Block 99 represents the process of retrofitting the activeprogram with telephony functionality. This can be done by determiningwhich program is controlling the computer to paint the active window andthen using highlighted text or numbers or the lack thereof in the activewindow along with the on-hook or off-hook status of the telephony deviceto control subsequent processing and the content of context sensitivemenus. In the preferred embodiment, the telephony functions areretrofitted to the active window by displaying a minidialer icon in ornear the title bar of the active window. A mouse click on the iconbrings a context sensitive drop down menu displaying the availabletelephony functions in the current state of affairs of on-hook/off-hookstatus and whether there is material selected in the active window.Other embodiments may put the minidialer icon in the system tray orunder the Apple menu or in the title bar above the desktop or on thedesktop itself. It really does not matter where the icon is displayed orwhether an icon is used at ail. For example, the telephony functionmenus may be displayed selectively only when a hot key combination isdetected. Retrofitting with telephony functions is the genus and contextsensitive displays of telephony functions which are available in aparticular situation is a subgenus. Particular species within the genusinclude adding dial, conference, transfer and hold telephony functionsto the active program and adding a pop function to the active programwhich can be invoked by a menu option from the minidialer menu. The popfunction controls the computer to take a highlighted name or number inthe active window and launch program and open a file that maintainsrecords of people and/or organizations that includes their name andphone number and to use the name or number highlighted in the activewindow as a search key to find and display a record for the person ororganization that has that name or phone number.

The process of block 100 is performed next. Block 100 symbolizingdetection of an event indicating the user would like to see a display ofthe available minidialer telephony menu options for the particularcontext. This event could be a mouse click (or other pointing deviceclick) on the minidialer icon (regardless of where it is displayed) ordetection of a hot key combination defined as indicating a desire tolaunch the minidialer context sensitive menu display process or a rightclick on highlighted text in a Windows 98 active application window (orany other operating system wherein context sensitive right click menuson highlighted text is provided). Next, in step 102, a determination ismade whether any text or number in the active window is highlighted. Theactive window may be the window displayed by any application programthat is currently controlling the computer and which can display textand numbers. If no text or numbers are highlighted, test 102 vectorsprocessing to block 104 where a flag is set indicating that there is notelephone number to dial. This flag is set whenever the user hashighlighted a valid telephone number or has highlighted text whichmatches a name In the phone book maintained either by the minidialerprogram 59 or the virtual telephone application process or a name in afile pointed to by a pointer in configuration data established by theuser. From block 104, processing flows to FIG. 2B which will beexplained further below.

If test 102 determines that text or numbers in the active window arehighlighted, processing flows to test 106. There, the minidialer programexamines the characters which are highlighted in the active window todetermine if they contain a phone number. If they appear to contain aphone number, processing flows to test 108 to determine if the phonenumber is already stored in the phone book or a file pointed to byconfiguration data. If it is, processing flows to block 110 to set theflag indicating that a phone number to dial is available. If the phonenumber which the user highlighted is not in the phone book or the filepointed to by the configuration data, test 108 vectors processing toblock 112 where the phone number is added to the phone book or filepointed to by the configuration data.

In the preferred embodiment, the virtual phone application 50 in FIG. 1maintains a phone/address book with names and phone numbers of personsand organizations. In some. embodiments, a dialog box pops up to promptthe user for a name to be associated with the phone number. In thepreferred embodiment, if the user highlights a piece of text thatappears to contain a name followed by a phone number, the mini dialeradds both the name and number to its internal database and dials thenumber as though the user had only highlighted the number. But it doesnot request a name to associate with the number, since it assumes italready has one.

Returning to the consideration of test 106, if the charactershighlighted in the active window are not a phone number, processingflows to test 114. Test 114 assumes that any text highlighted is a nameand determines if the highlighted characters match any known name in thephone/address book or the file pointed to by the configuration data.Test 114 also represents an alternative species wherein an interrupt isgenerated and the highlighted text is passed to an interrupt serviceroutine which uses the highlighted text to search a database or file fora name match, and if a match is found returning at least the phonenumber corresponding to the name. If there is a match, processing flowsto block 116 to look up the phone number corresponding to the name inthe phone book or file pointed to by the configuration data. After theprocessing of either block 112 or block 116, a phone number to dial isavailable, so processing flows to block 110 to set the flag indicatingthat a phone number to dial is available. Processing then flows to step126 in FIG. 2B.

Returning to the consideration of test 114, if it is determined that thehighlighted text Is not a name, processing flows to test 120. Thepurpose of test 120 is to determine if the highlighted text is a uniformresource locator (hereafter URL) address for a web page on the worldwide web. If it is a URL, processing flows to block 122 to launch a webbrowser and open the web page at the URL corresponding to thehighlighted text. In some embodiments, test 120 and step 122 are notpresent. After step 122, processing returns to start block 99, andsymbolized by block 123.

If test 120 determines that the highlighted text is not a URL,processing flows to block 124 where the highlighted text is assumed tobe a new name and is added to the phone/address book or the file pointedto by the configuration data. Then step 104 is performed to set the flagindicating a phone number is available to dial, and processing flows tostep 126 on FIG. 2B.

Test 126 is a determination as to whether the user is on the phone. Atthis point, there either will or there will not be a phone number todial and the content of further processing depends upon whether there isor is not a phone number to dial. If the user is not on the phone, test128 is performed to determine if the flag is set indicating there is anumber to dial. If there is a number to dial, step 130 is performed todial the number. In an alternative embodiment, when the user is not onthe phone but a number is highlighted, the minidialer responds to amouse click on the dialer icon or a hot key event by present a menu withan option to dial the number or pop the user's record from a programlike a contact manager application or provide a menu of telephone bookediting functions such as an option to add the number or look up thename etc. In another alternative embodiment, configuration data can beset by the user to default to either dial the number, or pop the recordor present the user with a menu of phone book editing functions.

The pop function is well known and has been in public use in theassignees software applications such as PhoneKits and CT Pro for severalyears, but its addition to the minidialer application is new. Basically,the pop function launches the contact manager database application, andlaunches a macro to use the highlighted number to look up the record forthe person having that number including name, address past buyinghistory, special needs etc. and displaying that record for the user onthe computer display. If the dial menu option is selected, theappropriate function call is made through the TAPI or other interface tothe telephony function programs to invoke a computer program whichcontrols the computer to send appropriate commands through the TAPI orother telephony device driver to the telephony device to dial thehighlighted number.

If test 128 determines that the phone number flag is not set, step 132is performed to activate the virtual telephone emulation applicationprocess 50 in FIG. 1. Process 50 then launches and displays a virtualtelephone on the video display of the computer so that the user canphysically dial a phone number or type in a few letters of the name theuser wants to call and have the virtual phone process automatically lookup the correct name and phone number which matches the letters typed in.The user can then click on the dial virtual button and the computer willbe controlled to dial the number through the TAPI device. Processingthen returns to start block 99 as symbolized by block 134.

Returning to the consideration of test 126, if it is determined that theuser is on the phone, processing is vectored to test 140. There it isdetermined if the flag is set indicating that there is a phone number todial. If the user is on the phone but there is no number to dial, thenprocessing is vectored along path 141 to block 142. This path 141 isalso taken if the phone number highlighted is the same number originallycalled to establish the current conversation or is the number of theperson who called the user of the computer. Block 142 represents theprocess of displaying a first set of available telephony optionsappropriate to this particular state of affairs and which are supportedby the current telephony device and the telephony library based upon anassumed intent of the user given the current situation. If the user ison the phone and there is a phone number to dial which is different thanthe current number engaged in the ongoing conversation, then the programassumes a different intent by the user and test 140 vectors processingto block 144 to display a different set of menu options appropriate tothe current state of affairs and the assumed intent of the user. Block142 displays menu options supported by the current telephony device forprocessing the call currently in progress given the fact that there isno new number highlighted to dial. In this circumstance, the displayedmenu options are, typically: Drop call, Hold, Pop Record for TelephoneNumber of other Conversant, Conference With Another Number, Transfer toAnother Number, Park.

If the user selects Conference or either version of Transfer with nonumber highlighted or previously looked up based upon a search basedupon the highlighted name, a dialog box is popped open on the display.This dialog box prompts the user for a telephone number or name or bothof the person to dial in for the conference (if only the name is given,the number will be automatically looked up in the phone book in thepreferred embodiment but it will not be in other embodiments) or to whomthe call is to be transferred. This dialog box also gives the user anoption to browse the phone book maintained on the computer, and, in thepreferred embodiment, this dialog box also shows a history listcomprised of the names and numbers of the last few people previouslycalled any of which may be selected for the conference or transfer.

If processing is vectored to block 144, the options supported by thecurrent telephony device which are displayed are ones which areappropriate to the assumed intent of a user who is on a call but who hashighlighted another telephone number or another name of a person storedin the phonebook or file pointed to by the configuration data. Thoseoptions are, typically: Drop Call, Hold Call, Activate the display ofthe virtual phone, Drop current call and dial new number, Dial Number oncurrent call, Pop Record for New Number, Conference with New Number,Transfer to New Number Unsupervised, Transfer Supervised, Park.

When any of these options is selected, the minidialer program makes theappropriate function call to the telephony function library to invokethe program to control the computer to carry out the selected telephonyfunction. In the case of the pop function, the minidialer programcontrols the computer to launch whatever contacts manager programdesignated by a user and open whatever file is designated by a user inconfiguration data. The contacts manager program maintains records ofpersons and organizations which include the phone number and name ofeach entity. The minidialer then uses the highlighted name or number asa search key to search the records of the file using a pre-written macroof commands native to the launched contacts manager program. Any recordwith a hit is then displayed to the user.

After either block 144 or block 142 is performed, processing returns tostart block 99.

Referring to FIG. 3, there is shown a block diagram of a physical systemwhich describes the genus of possible systems that could be used toimplement the invention. Any type of computer 56 is coupled by a serialLAN, serial port, modem port, parallel bus, SCSI bus or PCI or othersystem bus of computer 56 to any type of telephony device 61. Thetelephony device can be a modem, a telephone or any other type oftelephony device capable of cooperating with a program in a library oftelephony functions so as to carry out the telephony options on theminidialer menu. The telephony device is coupled to a telephone system63 such as the central switching office of a telephone service provideror a PBX. This connection can be via a telephone line or via a compucallinterface if the telephone system 63 is a PBX.

The computer 56 does not have to be a Windows OS computer, and thetelephony device does not have to be a TAPI compliant device so long asit is compatible with the library of telephony function programs incomputer 56. The telephony device may be part of computer 56, anexpansion card for computer 56, part of the telephone system 63 or astand alone device.

Although the invention has been disclosed in terms of the preferred andalternative embodiments disclosed herein, those skilled in the art willappreciate possible alternative embodiments and other modifications tothe teachings disclosed herein which do not depart from the spirit andscope of the invention. All such alternative embodiments and othermodifications are intended to be included within the scope of the claimsappended hereto.

What is claimed is:
 1. A method comprising: in response to selecting ofa displayed telephone number, prompting issuance of a click command tomake an outgoing call to the displayed telephone number, the selectingbeing indicated by highlighting the displayed telephone number, theclick command being selectable via a menu of options that includes amenu option that, when invoked during the outgoing call to the displayedtelephone number, via another click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record for a conversant at thedisplayed telephone number; in response to an incoming call, displayinga message from an operating system, the message including caller IDdata, the message to prompt issuing of other click commands that, ifissued, result in: answering the incoming call; conferencing theincoming call with the outgoing call; and placing on hold the outgoingcall; and in response to a conferencing selection made in absence of thehighlighting, displaying a history list of previously called telephonenumbers and establishing a conference involving the incoming call and aselected one of the previously called telephone numbers in the historylist.
 2. The method of claim 1, wherein the method also comprises: inresponse to the selecting, determining whether the displayed telephonenumber has previously been stored in a phone/address book.
 3. The methodof claim 2, wherein the method also comprises: if the displayedtelephone number has not previously been stored in the book, promptingfor a name to be associated with the displayed telephone number; andadding to the book the displayed telephone number in association withthe name.
 4. The method of claim 1, wherein: after the conferencing ofthe incoming call and the outgoing call, the incoming call and theoutgoing call are heard via a speakerphone.
 5. An article comprisingstorage storing instructions that when executed by a computer result inthe computer performing operations comprising: in response to selectingof a displayed telephone number, prompting issuance of a click commandto make an outgoing call to the displayed telephone number, theselecting being indicated by highlighting the displayed telephonenumber, the click command being selectable via a menu of options thatincludes a menu option that, when invoked during the outgoing call tothe displayed telephone number, via another click command, results inpresenting during the outgoing call a record editing function menu thatincludes another menu option that when invoked during the outgoing callresults in popping during the outgoing call of a record for a conversantat the displayed telephone number; in response to an incoming call,displaying a message from an operating system, the message includingcaller ID data, the message to prompt issuing of other click commandsthat, if issued, result in: answering the incoming call; conferencingthe incoming call with the outgoing call; and placing on hold theoutgoing call; and in response to a conferencing selection made inabsence of the highlighting, displaying a history list of previouslycalled telephone numbers and establishing a conference involving theincoming call and a selected one of the previously called telephonenumbers in the history list.
 6. The article of claim 5, wherein theoperations also comprise: in response to the selecting, determiningwhether the displayed telephone number has previously been stored in aphone/address book.
 7. The article of claim 6, wherein the operationsalso comprise: if the displayed telephone number has not previously beenstored in the book, prompting for a name to be associated with thedisplayed telephone number; and adding to the book the displayedtelephone number in association with the name.
 8. The article of claim5, wherein: after the conferencing of the incoming call and the outgoingcall, the incoming call and the outgoing call are heard via aspeakerphone.
 9. An apparatus comprising: a computer system to permitselecting of a displayed telephone number, and also to, in response tothe selecting of the displayed telephone number, prompt issuance of aclick command to make an outgoing call to the displayed telephonenumber, the computer system to indicate the selecting of the displayedtelephone number by highlighting the displayed telephone number, theclick command being selectable via a menu of options that includes amenu option that, when invoked during the outgoing call to the displayedtelephone number, via another click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record for a conversant at thedisplayed telephone number, the computer system also to, in response toan incoming call, display a message from an operating system, themessage including caller ID data, the message to prompt issuing of otherclick commands to command the computer system to: answer the incomingcall; conference the incoming call with the outgoing call; and place onhold the outgoing call; and the computer system to, in response to aconferencing selection made in absence of the highlighting, display ahistory list of previously called telephone numbers and establish aconference involving the incoming call and a selected one of thepreviously called telephone numbers in the history list.
 10. Theapparatus of claim 9, wherein: the computer system is also, in responseto the selecting, to determine whether the displayed telephone numberhas previously been stored in a phone/address book.
 11. The apparatus ofclaim 10, wherein: the computer system is also to, if the displayedtelephone number has not previously been stored in the book: prompt fora name to be associated with the displayed telephone number; and add tothe book the displayed telephone number in association with the name.12. The apparatus of claim 9, wherein: the computer system includes aspeakerphone via which, after conferencing the incoming call and theoutgoing call, the incoming call and the outgoing call are to be heard.13. A method comprising: in response to selecting of displayed text thatincludes a displayed telephone number, prompting issuance of clickcommands that, if issued, result in: adding the displayed telephonenumber to a phone/address book; and making an outgoing call to thedisplayed telephone number; and in response to another call, promptingissuing of other click commands that, if issued, result in: conferencingthe another call with the outgoing call; the click commands beingselectable via menus of options that include a menu option that, wheninvoked during the outgoing call to the displayed telephone number, viaa certain click command, results in presenting during the outgoing calla record editing function menu that includes another menu option thatwhen invoked during the outgoing call results in popping during theoutgoing call of a record in the phone/address book for a conversant atthe displayed telephone number; and if the selecting of the displayedtext is made in absence of highlighting the displayed telephone number,the method also comprises displaying a history list of previously calledtelephone numbers and establishing a conference involving the anothercall and a selected one of the previously called telephone numbers inthe history list.
 14. The method of claim 13, wherein the method alsocomprises: in response to the selecting, and before prompting theadding, determining whether the displayed telephone number haspreviously been stored in the phone/address book.
 15. The method ofclaim 14, wherein the method also comprises: if the displayed telephonenumber has not previously been stored in the book, prompting for a nameto be associated with the displayed telephone number; and adding to thebook the displayed telephone number in association with the name. 16.The method of claim 13, wherein: after the conferencing of the anothercall and the outgoing call, the another call and the outgoing call areheard via a speakerphone.
 17. An article comprising storage storinginstructions that when executed by a computer result in the computerperforming operations comprising: in response to selecting of displayedtext that includes a displayed telephone number, prompting issuance ofclick commands that, if issued, result in: adding the displayedtelephone number to a phone/address book; and making an outgoing call tothe displayed telephone number; and in response to another call,prompting issuing of other click commands that, if issued, result in:conferencing the another call with the outgoing call; the click commandsbeing selectable via menus of options that include a menu option that,when invoked during the outgoing call to the displayed telephone number,via a certain click command, results in presenting during the outgoingcall a record editing function menu that includes another menu optionthat when invoked during the outgoing call results in popping during theoutgoing call of a record in the phone/address book for a conversant atthe displayed telephone number; and if the selecting of the displayedtext is made in absence of highlighting the displayed telephone number,the operations also comprise displaying a history list of previouslycalled telephone numbers and establishing a conference involving theanother call and a selected one of the previously called telephonenumbers in the history list.
 18. The article of claim 17, wherein theoperations also comprise: in response to the selecting, and beforeprompting the adding, determining whether the displayed telephone numberhas previously been stored in the phone/address book.
 19. The article ofclaim 18, wherein the operations also comprise: if the displayedtelephone number has not previously been stored in the book, promptingfor a name to be associated with the displayed telephone number and addto the book the displayed telephone number in association with the name.20. The article of claim 17, wherein: after the conferencing of theanother call and the outgoing call, the another call and the outgoingcall are heard via a speakerphone.
 21. An apparatus comprising: acomputer system to, in response to selecting of displayed text thatincludes a displayed telephone number, prompt issuance of click commandsto add the displayed telephone number to a phone/address book and tomake an outgoing call to the displayed telephone number; and thecomputer system to, in response to another call, prompt issuing of otherclick commands to conference the another call with the outgoing call;the click commands being selectable via menus of options that include amenu option that, when invoked during the outgoing call to the displayedtelephone number, via a certain click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record in the phone/addressbook for a conversant at the displayed telephone number; and if theselecting of the displayed text is made in absence of highlighting thedisplayed telephone number, the computer system also is to display ahistory list of previously called telephone numbers and establish aconference involving the another call and a selected one of thepreviously called telephone numbers in the history list.
 22. Theapparatus of claim 21, wherein: the computer system also is to, inresponse to the selecting, and before prompting the adding, determiningwhether the displayed telephone number has previously been stored in thephone/address book.
 23. The apparatus of claim 22, wherein: the computersystem is also to, if the displayed telephone number has not previouslybeen stored in the book, prompt for a name to be associated with thedisplayed telephone number and to add to the book the displayedtelephone number in association with the name.
 24. The apparatus ofclaim 21, wherein: the computer system comprises a speakerphone viawhich, after conferencing the another call and the outgoing call, theanother call and the outgoing call are to be heard.
 25. A methodcomprising: in response to selecting of displayed text that includes adisplayed telephone number, prompting issuance of click commands that,if issued, result in: adding the displayed telephone number to aphone/address book; and making an outgoing call to the displayedtelephone number; and in response to another call, prompting issuing ofother click commands that, if issued, result in: conferencing theanother call with the outgoing call; and ending the calls; the clickcommands being selectable via menus of options that include a menuoption that, when invoked during the outgoing call to the displayedtelephone number, via a certain click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record in the phone/addressbook for a conversant at the displayed telephone number; and if theselecting of the displayed text is made in absence of highlighting thedisplayed telephone number, the method also comprises displaying ahistory list of previously called telephone numbers and establishing aconference involving the another call and a selected one of thepreviously called telephone numbers in the history list.
 26. The methodof claim 25, wherein the method also comprises: in response to theselecting, and before prompting the adding, determining whether thedisplayed telephone number has previously been stored in thephone/address book.
 27. The method of claim 26, wherein the method alsocomprises: if the displayed telephone number has not previously beenstored in the book, prompting for a name to be associated with thedisplayed telephone number; and adding to the book the displayedtelephone number in association with the name.
 28. The method of claim25, wherein: after the conferencing of the another call and the outgoingcall, the another call and the outgoing call are heard via aspeakerphone.
 29. An article comprising storage storing instructionsthat when executed by a computer result in the computer performingoperations comprising: in response to selecting of displayed text thatincludes a displayed telephone number, prompting issuance of clickcommands that, if issued, result in: adding the displayed telephonenumber to a phone/address book; and making an outgoing call to thedisplayed telephone number; and in response to another call, promptingissuing of other click commands that, if issued, result in: conferencingthe another call with the outgoing call; and ending the calls; the clickcommands being selectable via menus of options that include a menuoption that, when invoked during the outgoing call to the displayedtelephone number, via a certain click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record in the phone/addressbook for a conversant at the displayed telephone number; and if theselecting of the displayed text is made in absence of highlighting thedisplayed telephone number, the operations also comprise displaying ahistory list of previously called telephone numbers and establishing aconference involving the another call and a selected one of thepreviously called telephone numbers in the history list.
 30. The articleof claim 29, wherein the operations also comprise: in response to theselecting, and before prompting the adding, determining whether thedisplayed telephone number has previously been stored in thephone/address book.
 31. The article of claim 30, wherein the operationsalso comprise: if the displayed telephone number has not previously beenstored in the book, prompting for a name to be associated with thedisplayed telephone number and add to the book the displayed telephonenumber in association with the name.
 32. The article of claim 29,wherein: after the conferencing of the another call and the outgoingcall, the another call and the outgoing call are heard via aspeakerphone.
 33. An apparatus comprising: a computer system to, inresponse to selecting of displayed text that includes a displayedtelephone number, prompt issuance of click commands to add the displayedtelephone number to a phone/address book and to make an outgoing call tothe displayed telephone number; and the computer system to, in responseto another call, prompt issuing of other click commands to conferencethe another call with the outgoing call and to end the calls; the clickcommands being selectable via menus of options that include a menuoption that, when invoked during the outgoing call to the displayedtelephone number, via a certain click command, results in presentingduring the outgoing call a record editing function menu that includesanother menu option that when invoked during the outgoing call resultsin popping during the outgoing call of a record in the phone/addressbook for a conversant at the displayed telephone number; and if theselecting of the displayed text is made in absence of highlighting thedisplayed telephone number, the computer system is also to display ahistory list of previously called telephone numbers and establish aconference involving the another call and a selected one of thepreviously called telephone numbers in the history list.
 34. Theapparatus of claim 33, wherein: the computer system also is to, inresponse to the selecting, and before prompting the adding, determiningwhether the displayed telephone number has previously been stored in thephone/address book.
 35. The apparatus of claim 34, wherein: the computersystem is also to, if the displayed telephone number has not previouslybeen stored in the book, prompt for a name to be associated with thedisplayed telephone number and to add to the book the displayedtelephone number in association with the name.
 36. The apparatus ofclaim 33, wherein: the computer system comprises a speakerphone viawhich, after conferencing the another call and the outgoing call, theanother call and the outgoing call are to be heard.